package a2025_02_23;

import javafx.util.Pair;

import java.util.*;
//
//class Solution {
//    public List<String> topKFrequent(String[] words, int k) {
//        List<String> ret=new ArrayList<>();
//        HashMap<String,Integer> hashMap=new HashMap<>();
//        for(String x:words){
//            if(hashMap.getOrDefault(x,0)==0){
//                hashMap.put(x,1);
//            }else{
//                hashMap.put(x,hashMap.get(x)+1);
//            }
//        }
//
//        PriorityQueue<Pair<String,Integer>> queue=new PriorityQueue<>(
//                new Comparator<Pair<String,Integer>>(){
//                    @Override
//                    public int compare(Pair<String,Integer> o1,Pair<String,Integer> o2){
//                        if(o1.getValue()==o2.getValue()){
//                            return o2.getKey().compareTo(o1.getKey());
//                        }
//                        return o1.getValue()-o2.getValue();
//                    }
//                }
//        );
//
//        for(String x:words){
//            if(!hashMap.isEmpty()){
//                int count=hashMap.getOrDefault(x,0);
//                if(count!=0){
//                    Pair<String,Integer> pair=new Pair<>(x,count);
//                    hashMap.remove(x);
//                    queue.offer(pair);
//                    if(queue.size()>k){
//                        queue.poll();
//                    }
//                }
//            }
//        }
//        String[] retTmp=new String[queue.size()];
//        int i=0;
//        while(!queue.isEmpty()){
//            Pair<String,Integer> pair=queue.poll();
//            retTmp[i++]=pair.getKey();
//        }
//
//        for(i=retTmp.length-1;i>=0;i--){
//            ret.add(retTmp[i]);
//        }
//        return ret;
//    }
//}
